﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace KL.Store.Core.Domain
{
    #region WishList

    public class WishList
    {
        public int UserId { get; set; }
        public long ListId { get; set; }

        [Display(Name = "Liste Adı")]
        [Required(ErrorMessage = "*")]
        public string ListName { get; set; }

        [Display(Name = "Açıklama")]
        public string Explanation { get; set; }

        [Display(Name = "Ad")]
        [Required(ErrorMessage = "*")]
        public string FirstName { get; set; }

        [Display(Name = "Soyad")]
        [Required(ErrorMessage = "*")]
        public string LastName { get; set; }

        [Display(Name = "E-posta")]
        [Required(ErrorMessage = "*")]
        public string Email { get; set; }

        [Display(Name = "Telefon")]
        [Required(ErrorMessage = "*")]
        public string Phone { get; set; }

        [Display(Name = "Ad Soyad")]
        [Required(ErrorMessage = "*")]
        public string Address_Name { get; set; }

        [Display(Name = "Telefon")]
        [Required(ErrorMessage = "*")]
        public string Address_Phone { get; set; }

        [Display(Name = "Şehir")]
        [Required(ErrorMessage = "*")]
        public short Address_City { get; set; }

        [Display(Name = "İlçe")]
        [Required(ErrorMessage = "*")]
        public short Address_County { get; set; }

        [Display(Name = "Adres")]
        [Required(ErrorMessage = "*")]
        public string Address { get; set; }

        [Display(Name = "Liste Adresi")]
        public string ListUrl { get; set; }

        [Display(Name = "Hediyeleri Aldıkça Teslim Et")]
        public bool DeliveryByReceive { get; set; }

        [Display(Name = "Teslimat Tarihi")]
        [Required(ErrorMessage = "*")]
        public string DeliveryDate { get; set; }

        [Display(Name = "Liste Şifresi")]
        public string ListPass { get; set; }

        [Display(Name = "Liste Yayında")]
        public bool Published { get; set; }

        [Display(Name = "Hediye Çeki Kabul Et")]
        public bool Voucher { get; set; }

        [Display(Name = "Liste temsilcisi atamak istiyorum")]
        public bool Delegate { get; set; }

        [Display(Name = "Ad")]
        public string Delegate_FirstName { get; set; }

        [Display(Name = "Soyad")]
        public string Delegate_LastName { get; set; }

        [Display(Name = "Telefon")]
        public string Delegate_Phone { get; set; }

        [Display(Name = "E-posta")]
        public string Delegate_Email { get; set; }

        public string CreateDate { get; set; }
        public int CreateUser { get; set; }
        public string UpdateDate { get; set; }
        public int UpdateUser { get; set; }

        [Display(Name = "Alınan ürün sayısı")]
        public int ItemCompleted { get; set; }

        [Display(Name = "Ürün sayısı")]
        public int ItemCount { get; set; }

        public string PublishDateFaceBook { get; set; }
        public string PublishDateTwitter { get; set; }
        public string PublishDateMsn { get; set; }
        public string PublishDateGoogle { get; set; }
        public string PublishDateEmail { get; set; }
        public string PublishDateSMS { get; set; }

        public int PublishEmailCount { get; set; }
        public int PublishSMSCount { get; set; }
    }

    #endregion

    #region ProductWishList

    public class ProductWishList
    {
        public virtual bool Selected { get; set; }
        public virtual long ListId { get; set; }
        public virtual string ListName { get; set; }
        public virtual bool HasProcess { get; set; }
    }

    #endregion

    #region WishListDetail

    public class WishListDetail
    {
        public virtual int UserId { get; set; }
        public virtual long ListId { get; set; }
        public virtual int ProductId { get; set; }
        public virtual System.Decimal Qty { get; set; }
        public virtual System.Decimal QtyCancelled { get; set; }
        public virtual System.Decimal QtyPurchased { get; set; }
        public virtual System.Decimal QtyRemain { get; set; }
        public virtual System.Decimal Price { get; set; }
        public virtual System.Decimal Tax { get; set; }
        public virtual System.Decimal TotalPrice { get; set; }
        public virtual System.Decimal TotalPriceRemain { get; set; }

        public string ProductName { get; set; }
        public string Birim { get; set; }
        public string Birim2 { get; set; }
        public string Currency { get; set; }
        public string LinkUrl { get; set; }
        public System.Decimal Payment { get; set; }
        public List<GiftBuyer> GiftBuyers { get; set; }
        public string GiftBuyersText { get; set; }
    }

    #endregion

    #region Related Users

    public class RelatedUser
    {   public RelatedUser()
        {

        }

        public RelatedUser(int user, string name)
        {
            UserId = user;
            Name = name;
        }

        public virtual int UserId { get; set; }
        public string Name { get; set; }
    }

    #endregion

    #region User Related Lists

    public class UserRelatedList
    {
        public virtual int UserId { get; set; }
        public virtual long ListId { get; set; }
        public string Name { get; set; }
        public string ListName { get; set; }
    }

    #endregion

    #region Gift Buyer

    public class GiftBuyer
    {
        public int AccountId { get; set; }
        public string Name { get; set; }
    }

    #endregion
}
